#-----------------------------------------------------------------------------
# File Name: makefile
# Description
# -----------
# This is the makefile for the USBPaylink object file
#
#-----------------------------------------------------------------------------
SHELL 		= /bin/sh

#-- Release Compiler Flags ---------------------------------------------------

# If we're x86_64 architecture, then we need to do 32 bit compiles
ifeq ($(shell arch), x86_64)
M32 = -m32
endif

CXXFLAGS		+= $(M32) -O2 -g0 -Wall -Wno-char-subscripts -I. -I.. -I../.. -I../../.. -I../USBDevices -I../../MainCode -fno-strict-aliasing -Wno-deprecated-declarations -Wno-register -Wno-stringop-overflow -Wno-stringop-truncation -Wno-nonnull -Wno-write-strings -pipe -fomit-frame-pointer -DPROCESSOR=PC -D_GNU_SOURCE

#-- Compile All --------------------------------------------------------------

.PHONEY: all
all: USBPaylink.o \
     Acceptor.o \
     BNVCrypt.o \
     ccBcr.o \
     ccCoinAc.o \
     ccHopper.o \
     ccICT.o \
     ccInnov.o \
     CCNetPort.o \
     CCNetRecycler.o \
     ccNote.o \
     ccNV200.o \
     ccOEM.o \
     ccPort.o \
     ccSmartHopper.o \
     ccVegaRC.o \
     DESDevice.o \
     AESDevice.o \
     AESEncryption.o \
     EBDSNote.o \
     EBDSPort.o \
     GPTNote.o \
     GPTPort.o \
     Random.o \
     SSPCodes.o \
     SSPNote.o \
     SSPPort.o \
     SSPPrinter.o \
     TFlex.o \
     TFlexPort.o \
     ccCls.o \
     Printer.o \
     Device.o \
     Encrypt.o \
     Escrow.o \
     F56.o \
     F56Port.o \
     Hopper.o \
     HostIFace.o \
     MDBPort.o \
     MdbChanger.o \
     MdbTube.o \
     MdbBill.o \
     MdbCashless.o \
     MDBSwLite.o \
     Cashless.o \
     ID003Note.o \
     ID003Port.o \
     AESPort.o \
     IOLocal.o \
     Merkur.o \
     MFS.o \
     MFSPort.o \
     PiGPIO.o \
     Port.o \
     Version.o \
	 DESEncrypt.o



#-- Clean Up -----------------------------------------------------------------

.PHONEY: clean
clean:
	rm -f *.[bo]
	rm -f *.err


#-- Build targets ------------------------------------------------------------


USBPaylink.o: ../../../MainCode/Version.cpp \
    ../USBDevices/LEDSwLite.cpp \
    ../USBDevices/LEDSwPiHat.cpp \
    ../../MdbLinux.cpp \
    ../USBDevices/Monitor.cpp \
    ../USBDevices/LinuxDongle.cpp \
    ../USBDevices/CommsHandler.cpp \
    ../USBDevices/Exec.cpp \
    ../USBDevices/LiteConfig.cpp \
    ../USBDevices/LinuxThread.cpp \
    ../USBDevices/Remote.cpp \
    ../USBDevices/uDriver.cpp \
    ../USBDevices/USBPaylink.cpp \
    ../USBDevices/LinuxE2prom.cpp
	$(CXX) -c $(CXXFLAGS) -o $*.o ../USBDevices/USBPaylink.cpp
    

Acceptor.o:    ../../../MainCode/Acceptor.cpp 
	$(CXX) -c $(CXXFLAGS) -o $@ $?
BNVCrypt.o:    ../../../MainCode/BNVCrypt.cpp 
	$(CXX) -c $(CXXFLAGS) -o $@ $?
ccBcr.o:    ../../../MainCode/ccBcr.cpp 
	$(CXX) -c $(CXXFLAGS) -o $@ $?
ccCoinAc.o:    ../../../MainCode/ccCoinAc.cpp 
	$(CXX) -c $(CXXFLAGS) -o $@ $?
ccHopper.o:    ../../../MainCode/ccHopper.cpp 
	$(CXX) -c $(CXXFLAGS) -o $@ $?
ccICT.o:    ../../../MainCode/ccICT.cpp 
	$(CXX) -c $(CXXFLAGS) -o $@ $?
ccInnov.o:    ../../../MainCode/ccInnov.cpp 
	$(CXX) -c $(CXXFLAGS) -o $@ $?
CCNetPort.o:    ../../../MainCode/CCNetPort.cpp 
	$(CXX) -c $(CXXFLAGS) -o $@ $?
CCNetRecycler.o:    ../../../MainCode/CCNetRecycler.cpp 
	$(CXX) -c $(CXXFLAGS) -o $@ $?
ccNote.o:    ../../../MainCode/ccNote.cpp 
	$(CXX) -c $(CXXFLAGS) -o $@ $?
ccNV200.o:    ../../../MainCode/ccNV200.cpp 
	$(CXX) -c $(CXXFLAGS) -o $@ $?
ccOEM.o:    ../../../MainCode/ccOEM.cpp 
	$(CXX) -c $(CXXFLAGS) -o $@ $?
ccPort.o:    ../../../MainCode/ccPort.cpp 
	$(CXX) -c $(CXXFLAGS) -o $@ $?
ccSmartHopper.o:    ../../../MainCode/ccSmartHopper.cpp 
	$(CXX) -c $(CXXFLAGS) -o $@ $?
ccVegaRC.o:    ../../../MainCode/ccVegaRC.cpp 
	$(CXX) -c $(CXXFLAGS) -o $@ $?
DESDevice.o:    ../../../MainCode/DESDevice.cpp 
	$(CXX) -c $(CXXFLAGS) -o $@ $?
AESDevice.o:    ../../../MainCode/AESDevice.cpp 
	$(CXX) -c $(CXXFLAGS) -o $@ $?
AESEncryption.o:    ../../../MainCode/AESEncryption.cpp 
	$(CXX) -c $(CXXFLAGS) -o $@ $?
EBDSNote.o:    ../../../MainCode/EBDSNote.cpp 
	$(CXX) -c $(CXXFLAGS) -o $@ $?
EBDSPort.o:    ../../../MainCode/EBDSPort.cpp 
	$(CXX) -c $(CXXFLAGS) -o $@ $?
GPTNote.o:    ../../../MainCode/GPTNote.cpp 
	$(CXX) -c $(CXXFLAGS) -o $@ $?
GPTPort.o:    ../../../MainCode/GPTPort.cpp 
	$(CXX) -c $(CXXFLAGS) -o $@ $?
Random.o:    ../../../MainCode/Random.cpp 
	$(CXX) -c $(CXXFLAGS) -o $@ $?
SSPCodes.o:    ../../../MainCode/SSPCodes.cpp 
	$(CXX) -c $(CXXFLAGS) -o $@ $?
SSPNote.o:    ../../../MainCode/SSPNote.cpp 
	$(CXX) -c $(CXXFLAGS) -o $@ $?
SSPPort.o:    ../../../MainCode/SSPPort.cpp 
	$(CXX) -c $(CXXFLAGS) -o $@ $?
SSPPrinter.o:    ../../../MainCode/SSPPrinter.cpp 
	$(CXX) -c $(CXXFLAGS) -o $@ $?
ccCls.o:    ../../../MainCode/ccCls.cpp 
	$(CXX) -c $(CXXFLAGS) -o $@ $?
MDBPort.o:     ../../../MainCode/MDBPort.cpp 
	$(CXX) -c $(CXXFLAGS) -o $@ $?
MdbChanger.o:  ../../../MainCode/MdbChanger.cpp 
	$(CXX) -c $(CXXFLAGS) -o $@ $?
MdbBill.o:     ../../../MainCode/MdbBill.cpp 
	$(CXX) -c $(CXXFLAGS) -o $@ $?
MdbTube.o:     ../../../MainCode/MdbTube.cpp 
	$(CXX) -c $(CXXFLAGS) -o $@ $?
MdbCashless.o: ../../../MainCode/MdbCashless.cpp 
	$(CXX) -c $(CXXFLAGS) -o $@ $?
MDBSwLite.o: ../USBDevices/MDBSwLite.cpp 
	$(CXX) -c $(CXXFLAGS) -o $@ $?
Cashless.o: ../../../MainCode/Cashless.cpp 
	$(CXX) -c $(CXXFLAGS) -o $@ $?
TFlex.o:    ../../../MainCode/TFlex.cpp 
	$(CXX) -c $(CXXFLAGS) -o $@ $?
TFlexPort.o:    ../../../MainCode/TFlexPort.cpp 
	$(CXX) -c $(CXXFLAGS) -o $@ $?
Device.o:    ../../../MainCode/Device.cpp 
	$(CXX) -c $(CXXFLAGS) -o $@ $?
Printer.o:    ../../../MainCode/Printer.cpp 
	$(CXX) -c $(CXXFLAGS) -o $@ $?
Encrypt.o:    ../../../MainCode/Encrypt.cpp 
	$(CXX) -c $(CXXFLAGS) -o $@ $?
Escrow.o:    ../../../MainCode/Escrow.cpp 
	$(CXX) -c $(CXXFLAGS) -o $@ $?
F56.o:    ../../../MainCode/F56.cpp 
	$(CXX) -c $(CXXFLAGS) -o $@ $?
F56Port.o:    ../../../MainCode/F56Port.cpp 
	$(CXX) -c $(CXXFLAGS) -Wno-array-bounds -o $@ $?
Hopper.o:    ../../../MainCode/Hopper.cpp 
	$(CXX) -c $(CXXFLAGS) -o $@ $?
HostIFace.o:    ../../../MainCode/HostIFace.cpp ../../../MainCode/HostUtils.cpp ../../../MainCode/HostTask.cpp ../../../MainCode/HostServices.cpp 
	$(CXX) -c $(CXXFLAGS) -o HostIFace.o ../../../MainCode/HostIFace.cpp
ID003Note.o:    ../../../MainCode/ID003Note.cpp 
	$(CXX) -c $(CXXFLAGS) -o $@ $?
ID003Port.o:    ../../../MainCode/ID003Port.cpp 
	$(CXX) -c $(CXXFLAGS) -o $@ $?
AESPort.o:    ../../../MainCode/AESPort.cpp 
	$(CXX) -c $(CXXFLAGS) -o $@ $?
IOLocal.o:    ../../../MainCode/IOLocal.cpp 
	$(CXX) -c $(CXXFLAGS) -o $@ $?
Merkur.o:    ../../../MainCode/Merkur.cpp 
	$(CXX) -c $(CXXFLAGS) -o $@ $?
MFS.o:    ../../../MainCode/MFS.cpp
	$(CXX) -c $(CXXFLAGS) -o $@ $?
MFSPort.o:    ../../../MainCode/MFSPort.cpp 
	$(CXX) -c $(CXXFLAGS) -o $@ $?
Port.o:    ../../../MainCode/Port.cpp 
	$(CXX) -c $(CXXFLAGS) -o $@ $?
Version.o:    ../../../MainCode/Version.cpp 
	$(CXX) -c $(CXXFLAGS) -o $@ $?
DESEncrypt.o:    ../../../DESEncrypt.cpp 
	$(CXX) -c $(CXXFLAGS) -o $@ $?
PiGPIO.o:     ../USBDevices/PiGPIO.cpp
	$(CXX) -c $(CXXFLAGS) -o $@ $?

